home *** CD-ROM | disk | FTP | other *** search
-
- **************************************************************************
- * TIMER.DEVICE FUCTIONS *
- **************************************************************************
-
- ; SubTime, untested, unconnected. Should work, but useless ATM
-
- _SUBTIME:
- move.l (TV_SECS,A0),D0
- move.l (TV_MICRO,A0),D1
-
- sub.l (TV_SECS,A1),D0 ; seconds
- sub.l (TV_MICRO,A1),D1 ; micros
- bcc .out
- subq.l #1,D0
- add.l #1000000,D1
- .out
- move.l D0,(TV_SECS,A0)
- move.l D1,(TV_MICRO,A0)
- rts
-
- _READECLOCK:
- bsr .readeclock
-
- move.l #$AD303,D0 ; approx 716 KHz
- rts
-
- .readeclock:
- MOVEM.L D2-D5/A0/A2,-(A7)
- MOVEQ #$00,D0
- MOVEQ #$00,D2
- MOVEQ #$01,D5
- MOVE.L $00C0(A6),A2 ; ciaa.resource base
- EXG A6,A2 ; A2: exec
- LEA $00BFE001,A1
- MOVE.L $0024(A2),A0
-
- ; disable
- MOVE.W #$4000,$00DFF09A
- ADDQ.B #1,$0126(A0)
- ;
-
- MOVE.B $0700(A1),D3
- MOVE.B $0600(A1),D4
- MOVE.B $0700(A1),D2
- JSRLIB SetICR
- BTST #$01,D0
- BEQ.B LB_15F2
- LEA $00BFE001,A1
- MOVE.B $0700(A1),D3
- MOVE.B $0600(A1),D4
- MOVE.B $0700(A1),D2
- MOVEQ #$00,D5
- LB_15F2
- MOVEM.L $0048(A2),D0/D1
- MOVE.L $0024(A2),A0
-
- ; Enable()
- SUBQ.B #1,$0126(A0)
- BGE.B LB_160A
- MOVE.W #$C000,$00DFF09A
- LB_160A
- ;
-
- MOVE.L A2,A6
- CMP.B D3,D2
- BEQ.B LB_1612
- MOVEQ #-$01,D4
- LB_1612 LSL.W #8,D2
- MOVE.B D4,D2
- ADDQ.W #1,D2
- NEG.W D2
- TST.B D5
- BNE.B LB_1626
- ADD.L #$00010000,D1
- ADDX.L D5,D0
- LB_1626 MOVE.W D2,D1
- MOVE.W D5,A1
- MOVEM.L (A7)+,D2-D5/A0/A2
- MOVEM.L D0/D1,(A0)
- RTS
-